
$(function(){
    $("#ModalNeoProv").dialog({
        autoOpen: false,
        width: 510,
        height: 430,
        buttons: {
            "Grabar": function() {
                insertar();
            },
            "Cancelar": function() {
                $("#ModalNeoProv").dialog("close");
            }
        },
        modal: true
    });
    $("#ModalEdiProv").dialog({
        autoOpen: false,
        width: 510,
        height: 430,
        buttons: {
            "Grabar": function(){
                editar();
            },
            "Cancelar": function(){
                $("#ModalEdiProv").dialog("close");
            }
        },
        modal: true
    });
    
    $("#btnNuevoProv").click(function(){
        $("#ModalNeoProv").dialog("open");
        limpiarNuevoProv();
        generarCodigo();
        listarEstado("lstEstadoProv","Seleccione");
    });
    
    $("#btnEditarProv").click(function(){
        
        var filas= jQuery("#grid").jqGrid('getGridParam','selarrrow');
   
        if(filas!=""){
            if (filas.length > 0) {
                if (filas.length == 1) {
                    var codigoSel=jQuery("#grid").jqGrid('getRowData',filas[0]).codigo;
                    obtenerID(codigoSel);
                } else {
                    alert("Para modificar seleccione sólo un elemento de la lista.");
                }
            } else {
                alert("Seleccione elemento a modificar.");
            }
        }else{
            alert("Seleccione elemento a modificar"); 
        }
    });
    
    $("#btnEliminarProv").click(function(){
        
        var filas= jQuery("#grid").jqGrid('getGridParam','selarrrow');
        if (filas.length > 0) {
            if (confirm("¿Esta Seguro de Eliminar?")) {
                for (var i = 0; i < filas.length; i++) {
                    var codigoSel = (jQuery("#grid").jqGrid('getRowData', filas[i]).codigo);
                    validarElimar(codigoSel);
                }
            }
        } else {
            alert("Seleccione elemento para eliminar.");
        }
    });
    
    $("#txtCodigoProvSearch").keypress(function(e){
        if(e.which == 13){
            buscar();
        }
    });
    $("#txtDescripcionProvSearch").keypress(function(e){
        if(e.which == 13){
            buscar();
        }
    });
    
    $("#btnBuscarProv").click(function(){
        buscar();
    }).button();
    
    $("#btnLimpiarProv").click(function(){
       $("#txtCodigoProvSearch").val("");
       $("#txtDescripcionProvSearch").val("");
    }).button();
    
    $("#txtRucProv").keypress(function(e){
        return solonumeros(e);
    });
    $("#txtTelefonoProv").keypress(function(e){
        return solonumeros(e);
    });
    $("#txtRucProvEdi").keypress(function(e){
        return solonumeros(e);
    });
    $("#txtTelefonoProvEdi").keypress(function(e){
        return solonumeros(e);
    });
    
    listarEstado("lstEstadoSearch","Todos");
    buscar();
    
});

var validarElimar = function(codigo){
    var proveedor ={
        opc:'vdel',
        codigo:codigo
    };
    $.ajax({
        data:proveedor,
        url:'ajax/ajaxProveedor.php',
        type:'POST',
        success:function(response){
            if(response != '0'){
                alert(response);
            }else{
                eliminar(codigo);
            }
        }
    });
};

var editar = function(){
    if(ValidarRequeridosEdit()){
        var proveedor = {
            opc:"edi",
            codigo:$("#txtCodigoProvEdi").val(),
            codigo_alterno:$("#txtCodigoAltProvEdi").val(),
            descripcion:$("#txtDescripcionProvEdi").val(),
            direccion:$("#txtDireccionProvEdi").val(),
            ruc:$("#txtRucProvEdi").val(),
            contacto:$("#txtContactoProvEdi").val(),
            telefono:$("#txtTelefonoProvEdi").val(),
            departamento:$("#txtDepartamentoProvEdi").val(),
            provincia:$("#txtProvinciaProvEdi").val(),
            distrito:$("#txtDistritoProvEdi").val(),
            estado:$("#lstEstadoProvEdi").val()
        };
        $.ajax({
            data:proveedor,
            url:'ajax/ajaxProveedor.php',
            type:'POST',
            beforeSend:function(){},
            success:function(response){
                $("#ModalEdiProv").dialog("close");
                alert(response);
                buscar();
            }
        });
    }
};

var eliminar = function(codigo){
   var proveedor = {
           opc:'del',
           codigo:codigo
   };
   $.ajax({
          data:proveedor,
          url:'ajax/ajaxProveedor.php',
          type:'POST',
          beforeSend:function(){},
          success:function(response){
            $("#grid").jqGrid("clearGridData", true);    
            alert(response);
            buscar();
          }
   });
};

var obtenerID = function(codigo){
    
    $("#ModalEdiProv").dialog("open");
    limpiarEditarProv();
    var proveedor = { 
        opc:'get',
        codigo: codigo                  
    };
    $.ajax({
       data:proveedor,
       url:'ajax/ajaxProveedor.php',
       type:'post',
       beforeSend: function(){},
       success: function(response){
            var proveedor=$.parseJSON(response);
            $("#txtCodigoProvEdi").val(proveedor.codigo);
            $("#txtCodigoAltProvEdi").val(proveedor.codigo_alterno);
            $("#txtDescripcionProvEdi").val(proveedor.descripcion);
            $("#txtRucProvEdi").val(proveedor.ruc);
            $("#txtDireccionProvEdi").val(proveedor.direccion);
            $("#txtContactoProvEdi").val(proveedor.contacto);
            $("#txtTelefonoProvEdi").val(proveedor.telefono);
            $("#txtDepartamentoProvEdi").val(proveedor.departamento);
            $("#txtProvinciaProvEdi").val(proveedor.provincia);
            $("#txtDistritoProvEdi").val(proveedor.distrito);
            listarEstadoEdi(proveedor.estado,"lstEstadoProvEdi");
       }
    });
};

var insertar = function(){
    if(ValidarRequeridos()){
        var proveedor = {
            opc:'ins',
            codigo_alterno:$("#txtCodigoAltProv").val(),
            descripcion:$("#txtDescripcionProv").val(),
            direccion:$("#txtDireccionProv").val(),
            ruc:$("#txtRucProv").val(),
            contacto:$("#txtContactoProv").val(),
            telefono:$("#txtTelefonoProv").val(),
            departamento:$("#txtDepartamentoProv").val(),
            provincia:$("#txtProvinciaProv").val(),
            distrito:$("#txtDistritoProv").val(),
            estado:$("#lstEstadoProv").val()
        };
        $.ajax({
            data:proveedor,
            url:'ajax/ajaxProveedor.php',
            type:'POST',
            beforeSend:function(){},
            success:function(response){
                $("#ModalNeoProv").dialog("close");
                alert(response);
                buscar();
            }
        });
    }
};

var generarCodigo = function(){
    var proveedor = {opc:'cod'};
    $.ajax({
        data:proveedor,
        url:'ajax/ajaxProveedor.php',
        type:'POST',
        beforeSend:function(){},
        success:function(response){
            var proveedor = $.parseJSON(response);
            $("#txtCodigoProv").val(proveedor.codigoNuevo);
        }
    });
};

var limpiarNuevoProv = function(){
    
    $("#txtCodigoProv").val("");
    $("#txtCodigoAltProv").val("");
    $("#txtDescripcionProv").val("");
    $("#txtRucProv").val("");
    $("#txtDireccionProv").val("");
    $("#txtContactoProv").val("");
    $("#txtTelefonoProv").val("");
    $("#txtDepartamentoProv").val("");
    $("#txtProvinciaProv").val("");
    $("#txtDistritoProv").val("");
    $("#lstEstadoProv option").remove();
    
    msgError("","txtCodigoProv");
    msgError("","txtCodigoAltProv");
    msgError("","txtDescripcionProv");
    msgError("","txtRucProv");
    msgError("","txtDireccionProv");
    msgError("","txtContactoProv");
    msgError("","txtTelefonoProv");
    msgError("","txtDepartamentoProv");
    msgError("","txtProvinciaProv");
    msgError("","txtDistritoProv");
    msgError("","lstEstadoProv");
};

var limpiarEditarProv = function(){
    
    $("#txtCodigoProvEdi").val("");
    $("#txtCodigoAltProvEdi").val("");
    $("#txtDescripcionProvEdi").val("");
    $("#txtRucProvEdi").val("");
    $("#txtDireccionProvEdi").val("");
    $("#txtContactoProvEdi").val("");
    $("#txtTelefonoProvEdi").val("");
    $("#txtDepartamentoProvEdi").val("");
    $("#txtProvinciaProvEdi").val("");
    $("#txtDistritoProvEdi").val("");
    $("#lstEstadoProvEdi option").remove();
    
    msgErrorEdit("","txtCodigoProvEdi");
    msgErrorEdit("","txtCodigoAltProvEdi");
    msgErrorEdit("","txtDescripcionProvEdi");
    msgErrorEdit("","txtRucProvEdi");
    msgErrorEdit("","txtDireccionProvEdi");
    msgErrorEdit("","txtContactoProvEdi");
    msgErrorEdit("","txtTelefonoProvEdi");
    msgErrorEdit("","txtDepartamentoProvEdi");
    msgErrorEdit("","txtProvinciaProvEdi");
    msgErrorEdit("","txtDistritoProvEdi");
    msgErrorEdit("","lstEstadoProvEdi");
    
};

var buscar = function() {

    var vcod_alterno = $("#txtCodigoProvSearch").val();
    var vdescripcion = $("#txtDescripcionProvSearch").val();
    var vestado = $("#lstEstadoSearch").val();
    var vurli='ajax/ajaxProveedor.php?opc=bus&nd='+new Date().getTime()+'&codigo_alterno='+vcod_alterno+'&descripcion='+vdescripcion+'&estado='+vestado;
    
    var proveedor = {
        opc:"bus",
        codigo_alterno: $("#txtCodigoProvSearch").val(),
        descripcion: $("#txtDescripcionProvSearch").val(),
        estado: $("#lstEstadoSearch").val()
    };
    $("#grid").jqGrid("clearGridData", true);
    $("#grid").jqGrid('setGridParam',{url:vurli,datatype:'json',mtype: 'POST',postData:proveedor}).trigger('reloadGrid');
    
    jQuery("#grid").jqGrid({
        url:vurli,
        datatype: "json",
        mtype: 'POST',
        postData:proveedor,
        colNames: ['Codigo','Codigo Alterno', 'Descripcion','Direccion','Telefono','Contacto','RUC','Departamento','Provincia','Distrito','Codigo Estado','Estado'],
        colModel: [
                    {name: 'codigo',index: 'codigo',width: 100,sorttype:"string"},
                    {name: 'codigo_alterno',index: 'codigo_alterno',width: 100,sorttype:"string"},
                    {name: 'descripcion',index: 'descripcion',width: 100,sorttype:"string"},
                    {name: 'direccion',index: 'direccion',width: 100,sorttype:"string"},
                    {name: 'telefono',index: 'telefono',width: 100,sorttype:"string"},
                    {name: 'contacto',index: 'contacto',width: 100,sorttype:"string"},
                    {name: 'ruc',index: 'ruc',width: 100,sorttype:"string"},
                    {name: 'departamento',index: 'departamento',width: 100,sorttype:"string"},
                    {name: 'provincia',index: 'provincia',width: 100,sorttype:"string"},
                    {name: 'distrito',index: 'distrito',width: 100,sorttype:"string"},
                    {name: 'estado',index: 'estado',width: 100,sorttype:"string",hidden:true},
                    {name: 'estado_descri',index: 'estado_descri',width: 100,sorttype:"string"}
                  ],
        rowNum:10,
   	rowList:[10,20,30],
   	pager: '#pager',
   	sortname: 'id',
        viewrecords: true,
        sortorder: "desc",
        multiselect: true,
        multiSort:true,
        width: "1200",
        height: "180",
        caption: "Proveedores"
    }).navGrid("#pager", {
        edit: false,
        add: false,
        search: false,
        del: false
    });
};

jQuery.extend(jQuery.jgrid.edit, {
    ajaxEditOptions: { contentType: "application/json" },
    recreateForm: true,
    serializeEditData: function (postData) {
        return JSON.stringify(postData);
    }
});

jQuery.extend(jQuery.jgrid.del, {
    ajaxDelOptions: { contentType: "application/json" },
    serializeDelData: function (postData) {
        return JSON.stringify(postData);
    }
});